package com.example.dingtalkwebproject.controller;

import com.example.dingtalkwebproject.pojo.dArcStaff;
import com.example.dingtalkwebproject.pojo.pArcSaler;
import com.example.dingtalkwebproject.service.dArcStaffService;
import com.example.dingtalkwebproject.service.pArcSalerService;
import com.example.dingtalkwebproject.utils.AjaxResult;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/check")
public class staffInfoController {

    @Autowired
    private dArcStaffService dArcStaffService;

    @Autowired
    private pArcSalerService pArcSalerService;


    /**
     * 通过钉钉工号获取当前人员信息 并获取当前人员存在哪个门店
     * @param userId
     * @return
     */
    @GetMapping("/getStaffInfoById/{userId}")
    public AjaxResult getStaffInfoByDingUserId(@PathVariable String userId){
        if (StringUtils.isBlank(userId)) {
            return AjaxResult.error("参数未被定义!");
        }

        // 人员不为空之后就判断当前人员
        dArcStaff dArcStaff = dArcStaffService.selectStaffInfoByDingUserId(userId);
        if (ObjectUtils.isEmpty(dArcStaff)) {
            return AjaxResult.error("未获取到当前员工信息，钉钉工号还未维护，请联系信息部处理!");
        }

        // 获取完员工之后判断当前员工存在门店
        pArcSaler pArcSaler = pArcSalerService.selectStoreInfoById(dArcStaff.getStaffId());
        // 判断当前门店信息是否存在
        if (ObjectUtils.isEmpty(pArcSaler)) {
            return AjaxResult.error("未找到当前员工归属门店!");
        }

        return AjaxResult.success(pArcSaler);
    }


    /**
     * 通过人员编号获取当前人员信息 并获取当前人员存在哪个门店
     * @param staffId
     * @return
     */
    @GetMapping("/getStaffInfoByStaffId/{staffId}")
    public AjaxResult getStaffInfoByStaffId(@PathVariable String staffId){
        if (StringUtils.isBlank(staffId)) {
            return AjaxResult.error("参数未被定义!");
        }

        // 人员不为空之后就判断当前人员
        dArcStaff dArcStaff = dArcStaffService.selectDingUserIdByStaffId(staffId);
        if (ObjectUtils.isEmpty(dArcStaff)) {
            return AjaxResult.error("未获取到当前员工信息，钉钉工号还未维护，请联系信息部处理!");
        }

        // 获取完员工之后判断当前员工存在门店
        pArcSaler pArcSaler = pArcSalerService.selectStoreInfoById(dArcStaff.getStaffId());
        // 判断当前门店信息是否存在
        if (ObjectUtils.isEmpty(pArcSaler)) {
            return AjaxResult.error("未找到当前员工归属门店!");
        }

        return AjaxResult.success(pArcSaler);
    }
}
